#pragma once
#include "MenuState.h"
#include "Entity.h"
#include <vector>
using namespace std;


class CSGD_Direct3D;
class CSGD_DirectInput;
class CSGD_TextureManager;
class CSGD_XAudio2;
class IGameState;
class CBitmapFont;

struct tOptionsInfo
{
	char	szName[12];
	float	m_fMusic;
	float	m_fSFX;
};

class CPauseState :
	public MenuState
{
public:
	static CPauseState* GetInstance();

	virtual void Enter(void);	//Load Resources
	virtual void Exit();		//Unload Resources
	virtual bool Input();		//Handle Input
	virtual void Update(float fElapsedTime);		//Update game tokens
	virtual void Render();		//Render game tokens

	void SaveVolumes() ;
	void LoadVolumes() ;

private:
	CPauseState(void);
	virtual ~CPauseState(void);
	CPauseState& operator=(const CPauseState& );
	CPauseState(const CPauseState&);



	//SGD Wrappers
	CSGD_Direct3D		* m_pD3D;
	CSGD_DirectInput	* m_pDI;
	CSGD_TextureManager	* m_pTM;
	CSGD_XAudio2		* m_pXA;

	CBitmapFont*			m_pBF;

	vector<tOptionsInfo> vOptions;

	int						choice;
	int				m_nPointerImgID;
	int m_nBackgroundMusID;
	int m_nSFXID;
	float volume;
	float SFX;
};

